using System;

namespace MetaObjects.Contracts
{
	public interface IEntityProvider
	{
		Func<object, object> Factory { get; }
	}

	public interface IEntityProvider<TSource> : IEntityProvider
	{
		new Func<TSource, object> Factory { get; }
	}

	public interface IEntityProvider<TSource, TDestination> : IEntityProvider<TSource>
	{
		new Func<TSource, TDestination> Factory { get; }
	}

}